import Vue from 'vue'

// 重置浏览器默认样式
import 'normalize.css/normalize.css' // A modern alternative to CSS resets

// 导入elementUI
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// import locale from 'element-ui/lib/locale/lang/en' // lang i18n

// 架子自带的全局样式
import '@/styles/index.scss' // global css

import App from './App'
import store from './store'
import router from './router'

// 内置的一些图标组件
import '@/icons' // icon
// 添加路由守卫
import '@/permission' // permission control

// 到诶一个模块中所有导出的成员: * as 变量名
import * as all from '@/directive'
// all:是个对象，是所有的成员
// 使用的时候：all.所需要的指令名

Vue.use(ElementUI)
// 如果想要中文版 element-ui，按如下方式声明
// Vue.use(ElementUI)

Vue.config.productionTip = false

// 注册全局模块自定义属性
// 写法1：以后自定多了不方便
// Vue.directive('border', all.border)
// Vue.directive('imgError', all.imgError)
// 写法2：批量注册
Object.keys(all).forEach((key) => {
  console.log('指令名', key)
  Vue.directive(key, all[key])
})

new Vue({
  el: '#app',
  router, // 挂载路由router到vue组件实例 => 所有组件都可以访问：this.$router | this.$route
  store, // 挂载路由vuex到vue组件实例 => 所有组件都可以访问：this.$store
  render: h => h(App)
})
